Data communications between two points are nowadays conveniently implemented using digital techniques. In the case of digital telemetry, considerations of cost, available bandwidth, distance between sending and receiving stations, and sometimes hostile enviroment, made it desireable to use just a single data link, such as one wire, one optical fibre, or one RF transmission path. In any such single-link digital transmission, the data bits must obviously arrive at the receiving station in serial fashion, even though they may have been multi-bit data words before transmission. Consequently, it is necessary to encode the data at the sending station so that when it is decoded after reception at the receiving station, the data can be correctly reconstructed.
A known method of encoding data words for serial transmission involves serialising the parallel bits of each word using a parallel-to-serial converter which is clocked at a constant rate so that each time a clock pulse is applied to the converter, one data bit appears at its output. The data is recovered after transmission to the receiving station by clocking the received data bits into a register, and it will be evident that in order to reconstruct the data accurately, the clock rate at the receiving station must be the same as at the sending station; furthermore, both clocks must bear the same phase relationship to the data bits. This is only conveniently achievable by deriving the clock pulse at the receiving station from the transmitted data itself by using the points in the data stream where the data values change (from 0 to 1 or vice-versa, ie. so-called "data edges") as references for recovering the clock pulse. A difficulty arises here in that long periods of constant data may sometimes be produced (ie. data all 1's or all 0's) and in that case lack of data edges in the incoming data would make it impossible to use them to recover the clock signal. For example, telemetry of measurements from transducers on a test bed may produce data words comprising all 0's at or before start-up and all 1's for maximum scale measurements. The usual remedy here is to "scramble" the data before transmission so that long periods of constant data do not occur, the data being unscrambled at the receiving station.
Well known techniques exist for scrambling and unscrambling of data, such as the use of pseudo-random binary sequence generators, or of Miller, Miller.sup.2, and HDB3 telecommunications codes. However, in spite of the use of such techniques, the transmitted data will still contain short sequences of identical bits. It is known to overcome this difficulty by using the incoming data edges to stimulate an L-C-R tuned circuit into oscillation, the circuit being tuned to the required clock frequency; once the circuit has been set oscillating by a succession of incoming data edges, it will continue oscillating for a short while in the absence of such data edges. Hence, once the tuned circuit's sine wave output has been converted to square-wave pulses, a clock signal is available to substitute for the absent data edges. An alternative technique used for overcoming this difficulty is to use a gate-controlled oscillator to provide clock pulses. Here, the incoming data bits are used to set and reset the output of a logic gate which in turn is connected to a switch in the oscillator so as to repeatedly turn the oscillator on and off, the arrangement being that if data edges are present, the oscillator does not output clock pulses, but if two or more successive bits are identical, then the oscillator provides the necessary number of clock pulses to substitute for the absent data edges.
A serious problem can arise when using tuned circuits or gated oscillators to recover the data clock signal in the above way. This problem is connected with the fact that for a telemetry system to transmit and receive perfectly square pulses representing the data bits requires a transmission link of infinite bandwidth. Obviously, in a single link system only a restricted bandwidth is available, and therefore after transmission the data pulses are not exactly of square-wave form. Since the clock pulses for synchronization at the receiving station are generated when the received data edges cross threshold voltage levels in trigger circuits (eg. in a zero crossing detector circuit), it will be seen that non-square incoming data edges will cause the clock pulses to be triggered slightly earlier or later than they would have been if the data edges had been perfectly square. This phenomenon is called "time skew". At low data bit transmission rates time skew of the clock pulses at the receiving station with respect to the clock pulses at the sending station is not a problem, but at high data rates--say, in excess of 6 Mb/second--the amount of time skew becomes a significant percentage of the time between successive bits. In this case it becomes difficult to synchronize the clock pulses with the incoming data edges, leading to possible loss of data.
An object of the present invention is to provide a way of recovering the data clock signal at the receiving station which avoids the above problem of data loss at high data rates.